//
// Created by 紫霄 on 2020/4/15.
//

#ifndef LEETCODE_189_H
#define LEETCODE_189_H

#include <iostream>
#include <vector>
using namespace std;
// class Solution {
// public:
//  void rotate(vector<int> &nums, int k) {
//    if (k == nums.size() || k == 0) {
//      return;
//    }
//    if (k < 0) {
//      return rotate(nums, -k);
//    }
//    if (k > nums.size()) {
//      return rotate(nums, k - nums.size());
//    }
//    vector<int> a, b;
//    int sz = nums.size();
//    for (int i = 0, j = k; i < k; ++i, --j) {
//      a.push_back(nums[sz - j]);
//    }
//    for (int i = 0; i < sz - k; ++i) {
//      b.push_back(nums[i]);
//    }
//    for (int i = 0; i < a.size(); ++i) {
//      nums[i] = a[i];
//    }
//    for (int i = a.size(), j = 0; i < sz; ++i, ++j) {
//      nums[i] = b[j];
//    }
//  }
//};

class Solution {
public:
  void rotate(vector<int> &nums, int k) {
    std::rotate(nums.begin(), nums.end() - k % nums.size(), nums.end());
  }
};

#endif // LEETCODE_189_H
